Programma in Assembly IJVM

Il seguente programma è l'equivalente del programma in linguaggio C. Anche in questa versione si distinguono due diversi moduli: uno per il main e uno per il sottoprogramma PROVA.


.constant          //Definizione delle costanti globali
MAX 10
MIN 3
.end-constant


.main              //Definizione del programma principale
.var
I
J
K
.end-var
     BIPUSH 1
     ISTORE I
     BIPUSH 3
     ISTORE J
     ILOAD  I
     LDC_W  MIN
     ISUB
     IFLT   THEN
     BIPUSH 5      
//ramo else
     LDC_W  MAX
     ILOAD  J
     IADD

     INVOKEVIRTUAL PROVA
     ISTORE K
     GOTO   FINE
THEN:ILOAD  J      
//ramo then
     BIPUSH 5       //carica in OBJREF il valore 5
     ILOAD  I
     INVOKEVIRTUAL PROVA
     IADD
     ISTORE K
FINE:NOP
.end-main


.method PROVA(P)   //Definizione del sottoprogramma
.var
C
.end-var
    ILOAD  P
    BIPUSH 2
    IADD
    ISTORE C
    ILOAD  C
    IRETURN
.end-method

Pagina precedente